// 定义一个名为 'Person' 的接口
interface Person {
    name: string;
    age: number;
    // 可选属性：在属性名后加一个问号 '?'
    email?: string; 
    // 只读属性：只读属性不能被修改
    readonly id: number;
  }
  
  // 现在我们创建一个遵循 'Person' 接口的对象
  const user1: Person = {
    name: 'Alice',
    age: 30,
    id: 123,
    email: 'abc@example.com'
  };
  
  // 尝试给 'user1' 添加一个接口中不存在的属性，会报错
  // user1.address = '123 Main St'; // 错误：对象字面量只能指定已知属性
  
  // 尝试修改只读属性，会报错
  // user1.id = 456; // 错误：'id' 是只读属性
  
  // 另一个遵循 'Person' 接口的对象，可以不包含可选属性 'email'
  const user3: Person = {
    name: 'Bob',
    age: 25,
    id: 456
  };
  
  console.log(user1);
  console.log(user3);
  